.. _cmmSxSetSpeedRatio: cmmSxSetSpeedRatio ===================== --------------------- SYNOPSYS ``````````` .. code-block:: none VT_I4 cmmSxSetSpeedRatio( [in] VT_I4 Axis, [in] VT_I4 SpeedMode, [in] VT_R8 VelRatio, [in] VT_R8 AccRatio, [in] VT_R8 DecRatio ) DESCRIPTION ``````````````` - 단축 구동시 해당 축에 대한 속도 모드 및 속도 비율을 설정하거나 설정된 값을 반환합니다. PARAMETER ``````````` - Axis: 축번호. 축번호는 상수값으로 [cmX1] 부터 0 번째 축을 기준 축으로 임의의 축을 설정할 수 있습니다. \ - SpeedMode : cmmSxSetSpeedRatio 함수의 인자이며, 속도모드의 설정값입니다. 다음과 같은 설정값을 가집니다. .. csv-table:: :widths: 10 85 :header-rows: 1 :stub-columns: 0 Value, Meaning 0 또는 cmSMODE_C, COMSTANT 속도모드 => 가감속을 수행하지 않습니다. 1 또는 cmSMODE_T, TRAPEZOIDAL 속도모드 => 사다리꼴 가감속을 수행합니다. 2 또는 cmSMODE_S, S-CURVE 속도모드 => S-CURVE 가감속을 수행합니다. -1 또는 cmSMODE_KEEP, 이전 속도 모드를 그대로 유지합니다. 속도모드를 변경하지 않습니다. - VelRatio : cmmSxSetSpeedRatio 함수의 인자이며, 작업 속도 비율(Ratio) 값입니다. 이 값의 단위는 %입니다. \ - AccRatio : cmmSxSetSpeedRatio 함수의 인자이며, 가속도 비율(Ratio) 값입니다. 이 값의 단위는 %입니다. \ - DecRatio : cmmSxSetSpeedRatio 함수의 인자이며, 감속도 비율(Ratio) 값입니다. 이 값의 단위는 %입니다. RETURN VALUE ````````````` +--------------+----------------+ | Value | Meaning | +==============+================+ | 음수 | 수행 실패 | +--------------+----------------+ | cmERR_NONE | 수행 성공 | +--------------+----------------+ .. note:: 속도 비율(Ratio)의 정확한 의미를 알고 싶습니다. - 속도 설정은 비율로 설정이 됩니다. 비율에 의한 속도값은 기준 값에 배수(Multiplication)가 되거나 제법(Division) 이 된 속도 값을 의미합니다. 기준이 되는 속도 값은 cmmCfgSetSpeedPattern 으로 설정됩니다. \ - ㈜ 커미조아 CMMSDK 에서는 기준 속도(Standard Speed) 개념을 이용하고 있습니다. 전체 모션 속도는 기준속도의 비율로 설정이 가능하며, 이것은 cmmCfgSetSpeedPattern 함수에 의해서 설정된 기준 속도를 의미합니다. ㈜ 커미조아의 CMMSDK 는 기준속도의 값을 비율(Ratio) 로 설정할 수 있는 커다란 이점을 가지고 있습니다. ----- EXAMPLE `````````` .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ #include “Cmmsdk.h” #include “CmmsdkDef.h” void OnSetSpeed () { long nAxisNo = 1; // 모션 이송 속도를 설정할 대상 축을 선택합니다. /* 단축 모션의 작업 속도 비율을 설정합니다. cmmCfgSetSpeedPattern ()함수를 통해서 설정된 모션 이송 속도를 기준으로 속도 비율이 적용됩니다. */ cmmCfgSetSpeedPattern ( nAxisNo, cmSMODE_T, 1000, 10000, 10000 ); cmmSxSetSpeedRatio ( nAxisNo, // 대상 축 선택 cmSMODE_T, // 속도 모드 선택 50, // 작업 속도 비율. 1000 * 0.5 = 500 pps 80, // 가속도 비율. 10000 * 0.8 = 8000 pps² 80 // 감속도 비율. 10000 * 0.8 = 8000 pps² ); } .. code-block:: none :linenos: Visual Basic Private Sub OnSetSpeed (void) Dim nAxisNo As Long nAxisNo = 1 ‘ 모션 이송 속도를 설정할 대상 축을 선택합니다. ‘ 단축 모션의 작업 속도 비율을 설정합니다. cmmCfgSetSpeedPattern ()함수를 통해서 ‘ 설정된 모션 이송 속도를 기준으로 속도 비율이 적용됩니다. Call cmmCfgSetSpeedPattern ( nAxisNo, cmSMODE_T, 1000, 10000, 10000 ) Call cmmSxSetSpeedRatio( nAxisNo,cmSMODE_T,50,80,80 ) End Sub .. code-block:: none :linenos: Delphi procedure OnSetSpeed (); var nAxisNo : LongInt; begin nAxisNo := 1; // 모션 이송 속도를 설정할 대상 축을 선택합니다. // 단축 모션의 작업 속도 비율을 설정합니다. cmmCfgSetSpeedPattern ()함수를 통해서 // 설정된 모션 이송 속도를 기준으로 속도 비율이 적용됩니다. cmmCfgSetSpeedPattern ( nAxisNo, cmSMODE_T, 1000, 10000, 10000 ); cmmSxSetSpeedRatio ( nAxisNo, cmSMODE_T, 50, 80, 80); end; .. seealso:: :ref:`cmmCfgSetSpeedPattern`, :ref:`cmmCfgGetSpeedPattern`, :ref:`cmmSxGetSpeedRatio`